//
// BoundingBox.hpp for  in ~/Dropbox/Projets/raytracer-2016/Includes/Maths/
//
// Made by Jonathan
// Login   <ledey_l@epitech.net>
//
// Started on  Sat Sep 21 22:28:47 2013 Jonathan
// Last update Sun Sep 22 16:29:41 2013 Jonathan
//

#ifndef			BOUNDINGBOX_HPP_
# define		BOUNDINGBOX_HPP_

# include		"Maths/Vector.hpp"
# include		"Maths/Ray.hpp"
# include		"Maths/Constants.hpp"

namespace		Maths
{
  class			BoundingBox
  {
  private:
    long double		mX0;
    long double		mX1;
    long double		mY0;
    long double		mY1;
    long double		mZ0;
    long double		mZ1;

  protected:

  public:
    BoundingBox(long double rX0 = -1.f, long double rX1 = 1.f, long double rY0 = -1.f, long double rY1 = 1.f, long double rZ0 = -1.f, long double rZ1 = 1.f);
    BoundingBox(Vector const &rPoint0, Vector const &rPoint1);
    BoundingBox(BoundingBox const &rOther);
    BoundingBox		&operator=(BoundingBox const &rOther);
    ~BoundingBox(void);

    bool		HasInside(Vector const &rPoint) const;
    bool		IsHit(Ray const &rRay) const;
  };
};

#endif			/* BOUNDINGBOX_HPP_ */
